iT邦幫忙

2023 iThome 鐵人賽

DAY 1
1
Cloud Native

時光之鏡:透視過去、現在與未來的 Observability系列 第 1

開篇詞:「時光之鏡:透視過去、現在與未來的 Observability」

  • 分享至 

  • xImage
  •  

初衷

雖然很早就已經知道指標監控、鏈路追蹤、Grafana 等服務監控方式與工具,但第一次感受到 Observability 的威力,是在星巴哥技術週刊中看到了 Grafana 的 Webinar Getting started with Grafana dashboard design(相同主題的 Webinar 會定期重講,當時觀看的版本已經下架,此為相同主題的 Webinar)。主要講解如何設計 Dashboard,在 QA 時展示了如何利用 Metrics 鎖定時間區段,再同時查詢相同時間區段的 Logs。當下被這種操作方式震驚到,原來還可以把 Metrics 與 Logs 這樣結合應用!震驚完後,就是想著我也好想要有這種工具。

好想要!

一陣東翻西找後,在 Grafana 的 Blog 找到了一篇描述如何讓 Metrics、Logs、Traces 交互應用的文章。開篇就提到了 Observability,這也是我第一次接觸這個詞。接下來,就開始一頭栽入 Observability 的世界,嘗試達到 Grafana 提出的交互應用效果。當時並沒有太多簡單易懂的 Observability Demo 專案,只能靠自己不停摸索。跌跌撞撞後,終於拼湊出了使用 Python FastAPIJava Spring Boot 的兩個範例。

一開始的目的是想作為組織內的 POC 推廣看看,看有沒有機會導入。後來想說既然都做了,不如把 Readme 補一補,放到 GitHub 上讓有需要的人也可以參考,今年年中還剛好遇到 Grafana 10 週年舉辦 Dashboard 票選活動 Golden Grot,就把 Demo Project 中的 Dashboard 拿去投稿。沒想到入選 Final List,雖然最後只得到了第五名,但也因此有機會參加 Grafana Office Hours 分享 Project,對談了一小時的英文,也算是解鎖了一個小小的成就。

這一兩年 Observability 開始變得非常熱門,搭配著熱潮,在組織內也徵求到了一些想要嘗試的同仁。為了有效推廣 Observability,我也負責舉辦了多場的 Workshop 與分享,每一次的準備與分享都在審視自己對於概念以及工具是否真的清楚了解。所以,想藉著這次的鐵人賽,試著再好好介紹與研究正在使用的工具,也多了解一些其他不同的選項,開拓視野,希望能對 Observability 有更深入的了解。

呈現方式

系列文章分為兩種類型:

  1. 概念介紹:分享我所理解的各種 Observability 概念與知識點。
  2. 工具介紹:介紹 CNCF 中羅列的 Observability 工具,說明其主要元件功能、知識點以及要解決的問題,並提供範例程式展示如何使用。

為了簡化 Lab 環境,本系列範例主要使用 Container 搭配 Docker Compose,避免在接觸 Observability 前就先被 Kubernetes 墊高門檻。畢竟,Observability 不是只能專用於 Kubernetes,這些概念與工具同樣能應用於大型機台上的單體式服務。若能透過 Observability 幫祖傳系統(Legacy System)提高穩定性,這樣幫老兵插管續命也算是功德一件。

為切合時光之鏡的主題,部分章節也會佐以概念跟工具的歷史故事,讓大家可以了解他們被設計出來的時代背景。

系列大綱

開篇

  1. 開篇詞:「時光之鏡:透視過去、現在與未來的 Observability」
  2. Observability 的過去與現在
  3. Grafana - 洞察一切資訊的羅盤

Metrics 篇

  1. Metrics - 萬物皆可度量
  2. Prometheus - 照亮來時路與前方途的火炬
  3. Exporter - 揭露萬物真相的鏡子
  4. Monitoring Best Practices - 監控的黃金法則
  5. Mimir - 收羅萬象的智者
  6. Cortex - 指標長期儲存的大師兄
  7. Thanos - 統御 Prometheus 群集的霸者
  8. StatsD - 捍衛效能的守護神
  9. Zabbix - 指標界的沙場老兵

Logs 篇

  1. Logs - 紀錄的一切都將成為呈堂證供
  2. Loki — 解開日誌空間與時間束縛的法杖
  3. Promtail — Loki 御用 Log 收集器
  4. Fluent Bit — 資料收集界的萬能瑞士刀
  5. Vector — 速度至上的資料收集界新星

Traces 篇

  1. Traces — 看系統,一個兩個三個四個,連成線
  2. OpenTelemetry SDK — Automatic Instrumentation 給你一對翅膀
  3. Tempo - 小孩才做選擇,Trace 我全都要
  4. Jaeger - 系統軌跡,無所遁形
  5. OpenTelemetry Collector — 依賴反轉,解耦應用程式與儲存後端

應用篇

  1. Observability Signal Correlation — 三劍合一,發揮綜效
  2. Span Metrics — OpenTelemetry Collector 的 Trace 鍊金術
  3. Profiles 與 eBPF — Unlocking The Kernel
  4. Grafana Agent 與 Cloud — 想喝牛奶不必養牛,專業團隊協助維運
  5. In Production - 準備釋放你的 Observability 原力吧!
  6. In Production - 能力越強責任越大,別成為單點故障
  7. In Production - 如果資料要加上一個期限,我希望是一萬年

總結篇

  1. 總結篇 - Observability 的未來

適合對象

  • 想了解、導入 Observability
  • 想快速了解工具如何使用、彼此串接
  • 想知道各種 Observability 工具的豆知識

程式碼

所有範例程式碼將會放置於 https://github.com/blueswen/observability-ironman30-lab 上供參考與使用。

結語

文章內容受限於經驗與環境,如果有任何錯誤與建議都歡迎交流和指教,希望能夠在無止境的技術路上幫助有需要的人。

期待與各位一同探索 Observability 的無窮樂趣!


下一篇
Observability 的過去與現在
系列文
時光之鏡:透視過去、現在與未來的 Observability30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言